Process Migration
   HOME

TheInfoList



OR:

In computing, process migration is a specialized form of process management whereby
processes A process is a series or set of activities that interact to produce a result; it may occur once-only or be recurrent or periodic. Things called a process include: Business and management *Business process, activities that produce a specific se ...
are moved from one computing environment to another. This originated in
distributed computing A distributed system is a system whose components are located on different networked computers, which communicate and coordinate their actions by passing messages to one another from any system. Distributed computing is a field of computer sci ...
, but is now used more widely. On
multicore A multi-core processor is a microprocessor on a single integrated circuit with two or more separate processing units, called cores, each of which reads and executes program instructions. The instructions are ordinary CPU instructions (such a ...
machines (multiple cores on one processor or multiple processors) process migration happens as a standard part of process scheduling, and it is quite easy to migrate a process within a given machine, since most resources (memory, files, sockets) do not need to be changed, only the execution context (primarily
program counter The program counter (PC), commonly called the instruction pointer (IP) in Intel x86 and Itanium microprocessors, and sometimes called the instruction address register (IAR), the instruction counter, or just part of the instruction sequencer, i ...
and registers). The traditional form of process migration is in
computer cluster A computer cluster is a set of computers that work together so that they can be viewed as a single system. Unlike grid computers, computer clusters have each node set to perform the same task, controlled and scheduled by software. The comp ...
s where processes are moved from machine to machine, which is significantly more difficult, as it requires serializing the
process image In computing, a system image is a serialized copy of the entire state of a computer system stored in some non-volatile form such as a file. A system is said to be capable of using system images if it can be shut down and later restored to exactly ...
and migrating or reacquiring resources at the new machine. The first implementation of process migration was in the DEMOS/MP operating project at the
University of California, Berkeley The University of California, Berkeley (UC Berkeley, Berkeley, Cal, or California) is a public land-grant research university in Berkeley, California. Established in 1868 as the University of California, it is the state's first land-grant un ...
and was described in a 1983 paper by Barton Miller and Michael Powell. Process migration is implemented in, among others,
OpenMosix openMosix was a free cluster management system that provided single-system image (SSI) capabilities, e.g. automatic work distribution among nodes. It allowed program processes (not threads) to migrate to machines in the node's network that w ...
and the Sprite OS from the
University of California, Berkeley The University of California, Berkeley (UC Berkeley, Berkeley, Cal, or California) is a public land-grant research university in Berkeley, California. Established in 1868 as the University of California, it is the state's first land-grant un ...
.


Varieties

Process migration in computing comes in two flavors: ;Non-preemptive process migration: Process migration that takes place before execution of the process starts (i.e. migration whereby a process need not be preempted). This type of process migration is relatively cheap, since relatively little administrative overhead is involved. ;Preemptive process migration: Process migration whereby a process is preempted, migrated and continues processing in a different execution environment. This type of process migration is relatively expensive, since it involves recording, migration and recreation of the process state as well as the reconstructing of any
inter-process communication In computer science, inter-process communication or interprocess communication (IPC) refers specifically to the mechanisms an operating system provides to allow the processes to manage shared data. Typically, applications can use IPC, categoriz ...
channels to which the migrating process is connected.


Problems

Several problems occur when a running process moves to another machine. Some of these problems are: I/O redirection: if a process does I/O to files or devices that are bound to a certain machine, there must be a way to redirect access to these resources even after the process migrated. This involves redirection of the I/O data stream over the network and has disadvantages concerning security, performance and reliability. Inter-process communication: messages sent to a process with process ID ''P'' on a machine ''M'' have to be redirected to the new machine N and the new process ID ''Q''. The machine the process migrated away from needs to keep records of migrated processes. If multiple migration occurs, the overhead increases.
Shared memory In computer science, shared memory is memory that may be simultaneously accessed by multiple programs with an intent to provide communication among them or avoid redundant copies. Shared memory is an efficient means of passing data between progr ...
: if one of a group of cooperating processes migrates away and all these processes use a shared memory segment, then the network must be used to emulate shared memory access. This adds complexity and slows down access to the shared memory dramatically for processes that migrated away from the machine holding the shared memory. The phenomena that a host computer must provide services to a process that migrated away is called Residual Dependency. In addition to the problems mentioned above, process based operating systems usually maintain a variety of tables and states for running processes. There is no simple way to retrieve all administrative information about a process in a simple sequence of copy operations. Depending on the execution of the process, tables need to be searched, copied, altered and re-established on the destination system. Thus, process state replication is no simple task. Reference http://www.klammeraffe.org/~fritsch/uni-sb/fsinfo/Papers/migrate/node4.html


Integrated circuit design

An alternate definition of process migration is used in
integrated circuit design Integrated circuit design, or IC design, is a sub-field of electronics engineering, encompassing the particular logic and circuit design techniques required to design integrated circuits, or ICs. ICs consist of miniaturized electronic compon ...
and
engineering Engineering is the use of scientific principles to design and build machines, structures, and other items, including bridges, tunnels, roads, vehicles, and buildings. The discipline of engineering encompasses a broad range of more speciali ...
. Process migration or layout migration in this context is a design flow to change and shrink an existing IC layout to a new process technology node. The implementation of a process migration could be done manually by redrawing the layout feature by feature or by automatic
EDA EDA or Eda may refer to: Computing * Electronic design automation * Enterprise Desktop Alliance, a computer technology consortium * Enterprise digital assistant * Estimation of distribution algorithm * Event-driven architecture * Exploratory da ...
/
CAD Computer-aided design (CAD) is the use of computers (or ) to aid in the creation, modification, analysis, or optimization of a design. This software is used to increase the productivity of the designer, improve the quality of design, improve c ...
tools. In load sharing systems, a process is migrated from one node to another using a mechanism called process migration. The concept of a process is not introduced in this report as processes are a well-known design in operating systems. Process Migration refers to the mobility of executing (or suspended) processes in a distributed computing environment. Usually, this term indicates that a process uses a network to migrate to another machine to continue its execution there. Sometimes the term is used to describe the change in execution from one processor to another processor within the same machine.


References

{{Authority control Cluster computing